{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "xjgDyfmL6hB_"
   },
   "source": [
    "<center>\n",
    "    <p style=\"text-align:center\">\n",
    "        <img alt=\"phoenix logo\" src=\"https://storage.googleapis.com/arize-assets/phoenix/assets/phoenix-logo-light.svg\" width=\"200\"/>\n",
    "        <br>\n",
    "        <a href=\"https://arize.com/docs/phoenix/\">Docs</a>\n",
    "        |\n",
    "        <a href=\"https://github.com/Arize-ai/phoenix\">GitHub</a>\n",
    "        |\n",
    "        <a href=\"https://arize-ai.slack.com/join/shared_invite/zt-2w57bhem8-hq24MB6u7yE_ZF_ilOYSBw#/shared-invite/email\">Community</a>\n",
    "    </p>\n",
    "</center>\n",
    "<h1 align=\"center\">Code Functionality  Evals</h1>\n",
    "\n",
    "\n",
    "This tests whether code is written correctly, without bugs, accomplishes the functionality you want, does not have syntax errors.\n",
    "\n",
    "The purpose of this notebook is:\n",
    "\n",
    "- to evaluate the performance of code fuctionality Eval\n",
    "- to provide an experimental framework for users to iterate and improve on the default classification template.\n",
    "\n",
    "## Install Dependencies and Import Libraries"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "id": "R8pDe5eG6hCJ",
    "outputId": "724b67f8-9d0f-41cd-f212-570d2484c5a0"
   },
   "outputs": [],
   "source": [
    "%pip install -qq arize-phoenix  \"openai>=1\" ipython matplotlib pycm scikit-learn tiktoken nest_asyncio 'httpx<0.28'"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "h2ctpohg6hCK"
   },
   "source": [
    "ℹ️ To enable async request submission in notebook environments like Jupyter or Google Colab, optionally use `nest_asyncio`. `nest_asyncio` globally patches `asyncio` to enable event loops to be re-entrant. This is not required for non-notebook environments.\n",
    "\n",
    "Without `nest_asyncio`, eval submission can be much slower, depending on your organization's rate limits. Speed increases of about 5x are typical."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "id": "WHnAJf1g6hCL"
   },
   "outputs": [],
   "source": [
    "import nest_asyncio\n",
    "\n",
    "nest_asyncio.apply()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "id": "0bNZhOO46hCL",
    "outputId": "1980d240-5319-4d13-ea10-e2d745920d14"
   },
   "outputs": [],
   "source": [
    "import os\n",
    "from getpass import getpass\n",
    "\n",
    "import matplotlib.pyplot as plt\n",
    "import pandas as pd\n",
    "from pycm import ConfusionMatrix\n",
    "from sklearn.metrics import classification_report\n",
    "\n",
    "from phoenix.evals import (\n",
    "    create_classifier,\n",
    "    evaluate_dataframe,\n",
    ")\n",
    "\n",
    "pd.set_option(\"display.max_colwidth\", None)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "mvrJ8sQK6hCM"
   },
   "source": [
    "## Download Benchmark Dataset"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 536
    },
    "id": "o-BbInt76hCN",
    "outputId": "b87d1f6f-8bbf-419e-fb19-61c9297caa06"
   },
   "outputs": [],
   "source": [
    "df = pd.read_csv(\n",
    "    \"https://storage.googleapis.com/arize-assets/phoenix/evals/code-functionality/validated_python_code_samples_2.csv\"\n",
    ")\n",
    "\n",
    "df.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "khGGD8hN6hCP"
   },
   "source": [
    "\n",
    "## Display Code Functionality Classification Template\n",
    "\n",
    "View the default template used to code functionality. You can tweak this template and evaluate its performance relative to the default."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "id": "BQAEPJJn7vcj"
   },
   "outputs": [],
   "source": [
    "CODE_FUNCTIONALITY_PROMPT_TEMPLATE = \"\"\"\n",
    "Code Evaluation Prompt:\n",
    "-----------------------\n",
    "Evaluate the provided code to determine its correctness in solving the given instruction.\n",
    "\n",
    "Data:\n",
    "-----\n",
    "[Instruction]: {coding_instruction}\n",
    "  Clearly define the task or problem that the code aims to address.\n",
    "\n",
    "[Reference Code]: {code}\n",
    "  Examine the submitted code for evaluation in the context of the provided instruction.\n",
    "\n",
    "Evaluation:\n",
    "-----------\n",
    "Provide a concise response with a single word: either \"bug_free\" or \"is_bug\".\n",
    "- \"bug_free\" signifies that the code correctly and efficiently solves the instruction with no bugs.\n",
    "- \"is_bug\" indicates that the code either fails the instruction requirements or contains bugs.\n",
    "\n",
    "Example:\n",
    "-----------\n",
    "\n",
    "[Instruction]: Implement the Fibonacci sequence in Python.\n",
    "\n",
    "[Reference Code]: 'def fibonacci(n):\\n    if n <= 1:\\n        return n\\n    else:\\n        return\n",
    "fibonacci(n - 1) + fibonacci(n - 2)\\n\\nfor i in range(10):\\n    print(fibonacci(i))'\n",
    "\n",
    "[Output]: bug_free\n",
    "\n",
    "Note: Assumptions can be made that any code needed for the instruction is correct, and optimization\n",
    "is not a requirement for a correct solution. Your response should consist solely of the words\n",
    "\"bug_free\" or \"is_bug\" without additional text or characters.\n",
    "\"\"\"\n",
    "\n",
    "CODE_FUNCTIONALITY_PROMPT_RAILS_MAP = {\"bug_free\": 1, \"is_bug\": 0}"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "505OyTtx6hCQ"
   },
   "source": [
    "The template variables are:\n",
    "\n",
    "- **coding_instruction:** What is the code supposed to do as an instruction\n",
    "- **code:** The code to evaluate \n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "cWTzktuj6hCQ"
   },
   "source": [
    "## Configure the LLM\n",
    "\n",
    "Configure your OpenAI API key."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "id": "Hq-KlIVH6hCQ",
    "outputId": "3b978aaa-183d-489a-afb8-e37db1cb2110"
   },
   "outputs": [],
   "source": [
    "if not (openai_api_key := os.getenv(\"OPENAI_API_KEY\")):\n",
    "    openai_api_key = getpass(\"🔑 Enter your OpenAI API key: \")\n",
    "os.environ[\"OPENAI_API_KEY\"] = openai_api_key"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "aNybVoRm6hCR"
   },
   "source": [
    "## Benchmark Dataset Sample\n",
    "Sample size determines run time\n",
    "Recommend iterating small: 100 samples\n",
    "Then increasing to large test set"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "MSOJ9_2_6hCR"
   },
   "source": [
    "## LLM Evals: Code Functionality Classifications GPT-4\n",
    "Run Code Functionality against a subset of the data.\n",
    "Instantiate the LLM and set parameters."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "id": "rQ4dZYfS6hCS",
    "outputId": "cb3b06db-0170-4ae2-d1ea-1440dcc66922"
   },
   "outputs": [],
   "source": [
    "from phoenix.evals.llm import LLM\n",
    "\n",
    "model = LLM(provider=\"openai\", model=\"gpt-4\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "7oLPjvr36hCT"
   },
   "source": [
    "## Run Code Func Classifications\n",
    "\n",
    "Run code functionality classifications against a subset of the data."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 49,
     "referenced_widgets": [
      "8763982494d64e97bf50204d4b8beca3",
      "34e87b1773004b83ae4f227a2ec4e504",
      "b5914f9bde894147a126f2552c68212c",
      "a508ddd770e44356a773d94ab8fcf977",
      "bb44d964d93642b9946253033c3d9e94",
      "8b4a5af6f76d431d8570e7400f8086fd",
      "a9933a0bab7f496fa2527f1abd4f2807",
      "2eefae02445a4b1e9aad8fdc47a63572",
      "ca3b583f7f5845f3b0cf197ac1b63976",
      "568d5c22695a4108b3b0c27119cbf97e",
      "f55ce1255e3f4dc6aab23b448a5c7574"
     ]
    },
    "id": "Q2592lfO6hCU",
    "outputId": "5e200b64-d312-4f9a-9c22-7abe4cf96883"
   },
   "outputs": [],
   "source": [
    "code_functionality_eval = create_classifier(\n",
    "    name=\"code functionality\",\n",
    "    prompt_template=CODE_FUNCTIONALITY_PROMPT_TEMPLATE,\n",
    "    llm=model,\n",
    "    choices={\"bug_free\": 1, \"is_bug\": 0},\n",
    ")\n",
    "\n",
    "results_df = evaluate_dataframe(dataframe=df, evaluators=[code_functionality_eval])\n",
    "\n",
    "allLabels = results_df[\"code functionality_score\"].apply(\n",
    "    lambda x: x.get(\"label\") if isinstance(x, dict) else None\n",
    ")\n",
    "\n",
    "allLabels.tolist()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "ImqyWlGw6hCV"
   },
   "source": [
    "## Evaluate Classifications\n",
    "\n",
    "Evaluate the predictions against human-labeled ground-truth code functionality labels."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 651
    },
    "id": "8Ls9n2S76hCW",
    "outputId": "d4167fe4-2260-4b92-dd39-0bbe7f921ef3"
   },
   "outputs": [],
   "source": [
    "true_labels = df[\"is_well_coded\"].map(CODE_FUNCTIONALITY_PROMPT_RAILS_MAP).tolist()\n",
    "\n",
    "print(classification_report(true_labels, allLabels, labels=[\"bug_free\", \"is_bug\"]))\n",
    "confusion_matrix = ConfusionMatrix(\n",
    "    actual_vector=true_labels, predict_vector=allLabels, classes=[\"bug_free\", \"is_bug\"]\n",
    ")\n",
    "confusion_matrix.plot(\n",
    "    cmap=plt.colormaps[\"Blues\"],\n",
    "    number_label=True,\n",
    "    normalized=True,\n",
    ")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "w5ZJV1IC6hCX"
   },
   "source": [
    "## Classifications with explanations\n",
    "\n",
    "When evaluating a dataset for code functionality, it can be useful to know why the LLM classified a document as relevant or irrelevant. The following code block runs `llm_classify` with explanations turned on so that we can inspect why the LLM made the classification it did. There is speed tradeoff since more tokens is being generated but it can be highly informative when troubleshooting."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "CODE_FUNCTIONALITY_PROMPT_TEMPLATE_WITH_EXPLANATION = \"\"\"\n",
    "Code Evaluation Prompt:\n",
    "-----------------------\n",
    "Evaluate the provided code to determine its correctness in solving the given instruction.\n",
    "\n",
    "Data:\n",
    "-----\n",
    "[Instruction]: {coding_instruction}\n",
    "  Clearly define the task or problem that the code aims to address.\n",
    "\n",
    "[Reference Code]: {code}\n",
    "  Examine the submitted code for evaluation in the context of the provided instruction.\n",
    "\n",
    "Evaluation:\n",
    "-----------\n",
    "Provide a concise response with a explanation and a single word LABEL: either \"bug_free\" or\n",
    "\"is_bug\".\n",
    "- \"bug_free\" signifies that the code correctly and efficiently solves the instruction with no bugs.\n",
    "- \"is_bug\" indicates that the code either fails to meet the instruction requirements or contains\n",
    "bugs.\n",
    "\n",
    "Example:\n",
    "-----------\n",
    "\n",
    "[Instruction]: Implement the Fibonacci sequence in Python.\n",
    "\n",
    "[Reference Code]: 'def fibonacci(n):\\n    if n <= 1:\\n        return n\\n    else:\\n        return\n",
    "fibonacci(n - 1) + fibonacci(n - 2)\\n\\nfor i in range(10):\\n    print(fibonacci(i))'\n",
    "\n",
    "[Output]: bug_free\n",
    "\n",
    "Note: Assumptions can be made that any code needed for the instruction is correct, and optimization\n",
    "is not a requirement for a correct solution. Your response should consist solely of the words\n",
    "\"bug_free\" or \"is_bug\" without additional text or characters.\n",
    "\n",
    "Please read the instruction and code carefully, then write out in a step by step manner an\n",
    "EXPLANATION to show how to evaluate the functionality of the code. Avoid simply stating the correct\n",
    "answer at the outset.\n",
    "You are then going to respond with a LABEL (a single word evaluation).\n",
    "If the reference code functionally solves the instruction problem without any bugs than call it\n",
    "\"bug_free\".\n",
    "If reference code has bugs or does not functionally solve the instruction problem than call it\n",
    "\"is_bug\".\n",
    "\n",
    "Example response:\n",
    "************\n",
    "EXPLANATION: An explanation of your reasoning for why the code is bug_free or is_bug\n",
    "LABEL: \"bug_free\" or \"is_bug\"\n",
    "************\n",
    "\n",
    "EXPLANATION:\n",
    "\"\"\""
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 873,
     "referenced_widgets": [
      "1f7c7ce2ea874835986c9988bc062d82",
      "bb5911202039461b98517aba47f7e656",
      "3357650b34ed48848c6aec68957a9654",
      "5b85cf639b5c4a0cb5e4acff52a58ae8",
      "b5440442ff814c69ab5409ec55b16a4e",
      "0d06c9bac593459e8b4349697b60fd45",
      "5ccf1ab7cc164b6cb0c12b99dbd526e1",
      "6f96f9c08c6742429e31e35b5b5e9c45",
      "861dc30d89d846c6a6f5c1b5398b877c",
      "90253079c26747df99af818a9edabf36",
      "e8071c5ea332447c894cd34bee283ab2"
     ]
    },
    "id": "DwS_xRu-6hCY",
    "outputId": "8b6783fe-6ff3-4a18-e363-a3bc5238bce6"
   },
   "outputs": [],
   "source": [
    "small_df_sample = df.copy().sample(n=5).reset_index(drop=True)\n",
    "\n",
    "\n",
    "code_functionality_eval = create_classifier(\n",
    "    name=\"code functionality\",\n",
    "    prompt_template=CODE_FUNCTIONALITY_PROMPT_TEMPLATE_WITH_EXPLANATION,\n",
    "    llm=model,\n",
    "    choices={\"bug_free\": 1, \"is_bug\": 0},\n",
    ")\n",
    "\n",
    "results_df = evaluate_dataframe(dataframe=small_df_sample, evaluators=[code_functionality_eval])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 1000
    },
    "id": "Kz0R9iIO6hCY",
    "outputId": "9413f186-6c65-4f0b-a1a7-23d903c4bd9d"
   },
   "outputs": [],
   "source": [
    "# Let's view the data\n",
    "merged_df = pd.merge(small_df_sample, results_df, left_index=True, right_index=True)\n",
    "merged_df[[\"coding_instruction\", \"code\", \"label\", \"explanation\"]].head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "cHNsvloA6hCZ"
   },
   "source": [
    "## LLM Evals: code functionality Classifications GPT-3.5 Turbo\n",
    "Run Code functionality against a subset of the data using GPT-3.5. GPT-3.5 can significantly speed up the classification process. However there are tradeoffs as  we will see below."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "id": "jiQ9LvpU6hCZ",
    "outputId": "6054cdec-f39b-406c-870b-47cd296e56c9"
   },
   "outputs": [],
   "source": [
    "model = LLM(provider=\"openai\", model=\"gpt-3.5-turbo\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "code_functionality_eval = create_classifier(\n",
    "    name=\"code functionality\",\n",
    "    prompt_template=CODE_FUNCTIONALITY_PROMPT_TEMPLATE,\n",
    "    llm=model,\n",
    "    choices={\"bug_free\": 1, \"is_bug\": 0},\n",
    ")\n",
    "\n",
    "relevance_classifications = evaluate_dataframe(dataframe=df, evaluators=[code_functionality_eval])\n",
    "\n",
    "relevance_classifications = relevance_classifications[\"code functionality_score\"].apply(\n",
    "    lambda x: x.get(\"label\") if isinstance(x, dict) else None\n",
    ")\n",
    "\n",
    "relevance_classifications.tolist()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 651
    },
    "id": "V6L35oYA6hCa",
    "outputId": "c147f626-389b-4356-bbb4-6f5a50a83902"
   },
   "outputs": [],
   "source": [
    "true_labels = df[\"is_well_coded\"].map(CODE_FUNCTIONALITY_PROMPT_RAILS_MAP).tolist()\n",
    "\n",
    "print(classification_report(true_labels, relevance_classifications, labels=[\"bug_free\", \"is_bug\"]))\n",
    "confusion_matrix = ConfusionMatrix(\n",
    "    actual_vector=true_labels,\n",
    "    predict_vector=relevance_classifications,\n",
    "    classes=[\"bug_free\", \"is_bug\"],\n",
    ")\n",
    "confusion_matrix.plot(\n",
    "    cmap=plt.colormaps[\"Blues\"],\n",
    "    number_label=True,\n",
    "    normalized=True,\n",
    ")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "zCu7LB4z6hCa"
   },
   "source": [
    "## Preview: Running with GPT-4 Turbo"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 67,
     "referenced_widgets": [
      "eaf0c8354fc24e4aa228525639793107",
      "8499388789c04cf19e29279e9bc9c468",
      "6bfc17ec2fcd4cd4b2d250743590ca19",
      "554fa6afa4144418b9e7ae200ad12b91",
      "bb8d73f1129146c9809dd05ec848fb49",
      "14b484f8c5b84a248cfd6c7e584bb182",
      "4124a8afe45246fd811064e63a55fd6d",
      "34cdb200856f42f7bf6317022bc5b0f5",
      "89c44f8d9ad54370b75eacd7e83a4a70",
      "2ce2cdff3299422889b49b5107071a7b",
      "6490726f2b024d1d8bbedc36adbd7aa6"
     ]
    },
    "id": "jTN1nIqP6hCa",
    "outputId": "7aa1f761-01c3-4675-dc5d-3074ca767d2b"
   },
   "outputs": [],
   "source": [
    "model = LLM(provider=\"openai\", model=\"gpt-4-1106-preview\")\n",
    "\n",
    "code_functionality_eval = create_classifier(\n",
    "    name=\"code functionality\",\n",
    "    prompt_template=CODE_FUNCTIONALITY_PROMPT_TEMPLATE,\n",
    "    llm=model,\n",
    "    choices={\"bug_free\": 1, \"is_bug\": 0},\n",
    ")\n",
    "\n",
    "classifications = evaluate_dataframe(dataframe=df, evaluators=[code_functionality_eval])\n",
    "classifications = classifications[\"code functionality_score\"].apply(\n",
    "    lambda x: x.get(\"label\") if isinstance(x, dict) else None\n",
    ")\n",
    "\n",
    "classifications.tolist()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 651
    },
    "id": "dpaZ71bK6hCb",
    "outputId": "e77451db-27dc-48c3-b265-d7b58c0478e3"
   },
   "outputs": [],
   "source": [
    "true_labels = df[\"is_well_coded\"].map(CODE_FUNCTIONALITY_PROMPT_RAILS_MAP).tolist()\n",
    "\n",
    "print(classification_report(true_labels, classifications, labels=[\"bug_free\", \"is_bug\"]))\n",
    "confusion_matrix = ConfusionMatrix(\n",
    "    actual_vector=true_labels, predict_vector=classifications, classes=[\"bug_free\", \"is_bug\"]\n",
    ")\n",
    "confusion_matrix.plot(\n",
    "    cmap=plt.colormaps[\"Blues\"],\n",
    "    number_label=True,\n",
    "    normalized=True,\n",
    ")"
   ]
  }
 ],
 "metadata": {
  "colab": {
   "provenance": []
  },
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.11.5"
  },
  "widgets": {
   "application/vnd.jupyter.widget-state+json": {
    "0d06c9bac593459e8b4349697b60fd45": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "14b484f8c5b84a248cfd6c7e584bb182": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "19d2b7ed9b3949adbf9430b40c690800": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "HTMLModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_dafe7d73cdb54b52a74596dd8d07ef2d",
      "placeholder": "​",
      "style": "IPY_MODEL_60d5450863e64e36975beda2392ef80a",
      "value": " 50/50 (100.0%) | ⏳ 00:10&lt;00:00 |  3.61it/s"
     }
    },
    "1f7c7ce2ea874835986c9988bc062d82": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "HBoxModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HBoxModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HBoxView",
      "box_style": "",
      "children": [
       "IPY_MODEL_bb5911202039461b98517aba47f7e656",
       "IPY_MODEL_3357650b34ed48848c6aec68957a9654",
       "IPY_MODEL_5b85cf639b5c4a0cb5e4acff52a58ae8"
      ],
      "layout": "IPY_MODEL_b5440442ff814c69ab5409ec55b16a4e"
     }
    },
    "2ce2cdff3299422889b49b5107071a7b": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "2eefae02445a4b1e9aad8fdc47a63572": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "3357650b34ed48848c6aec68957a9654": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "FloatProgressModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "FloatProgressModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "ProgressView",
      "bar_style": "success",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_6f96f9c08c6742429e31e35b5b5e9c45",
      "max": 5,
      "min": 0,
      "orientation": "horizontal",
      "style": "IPY_MODEL_861dc30d89d846c6a6f5c1b5398b877c",
      "value": 5
     }
    },
    "34cdb200856f42f7bf6317022bc5b0f5": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "34e87b1773004b83ae4f227a2ec4e504": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "HTMLModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_8b4a5af6f76d431d8570e7400f8086fd",
      "placeholder": "​",
      "style": "IPY_MODEL_a9933a0bab7f496fa2527f1abd4f2807",
      "value": "llm_classify "
     }
    },
    "4124a8afe45246fd811064e63a55fd6d": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "DescriptionStyleModel",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "554fa6afa4144418b9e7ae200ad12b91": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "HTMLModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_2ce2cdff3299422889b49b5107071a7b",
      "placeholder": "​",
      "style": "IPY_MODEL_6490726f2b024d1d8bbedc36adbd7aa6",
      "value": " 50/50 (100.0%) | ⏳ 00:10&lt;00:00 |  4.06it/s"
     }
    },
    "568d5c22695a4108b3b0c27119cbf97e": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "5b85cf639b5c4a0cb5e4acff52a58ae8": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "HTMLModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_90253079c26747df99af818a9edabf36",
      "placeholder": "​",
      "style": "IPY_MODEL_e8071c5ea332447c894cd34bee283ab2",
      "value": " 5/5 (100.0%) | ⏳ 00:09&lt;00:00 |  1.08it/s"
     }
    },
    "5ccf1ab7cc164b6cb0c12b99dbd526e1": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "DescriptionStyleModel",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "60d5450863e64e36975beda2392ef80a": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "DescriptionStyleModel",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "62fd28d79b6d4bae912756a47d1450f2": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "HBoxModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HBoxModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HBoxView",
      "box_style": "",
      "children": [
       "IPY_MODEL_be64e987f1a547bdb9196b30bae0c2a2",
       "IPY_MODEL_d0bc41ba95514e56b13bb6da23c26bd3",
       "IPY_MODEL_19d2b7ed9b3949adbf9430b40c690800"
      ],
      "layout": "IPY_MODEL_a78025bd35c84f3793772fd38872bbf3"
     }
    },
    "6490726f2b024d1d8bbedc36adbd7aa6": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "DescriptionStyleModel",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "6bfc17ec2fcd4cd4b2d250743590ca19": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "FloatProgressModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "FloatProgressModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "ProgressView",
      "bar_style": "",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_34cdb200856f42f7bf6317022bc5b0f5",
      "max": 50,
      "min": 0,
      "orientation": "horizontal",
      "style": "IPY_MODEL_89c44f8d9ad54370b75eacd7e83a4a70",
      "value": 50
     }
    },
    "6f96f9c08c6742429e31e35b5b5e9c45": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "8499388789c04cf19e29279e9bc9c468": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "HTMLModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_14b484f8c5b84a248cfd6c7e584bb182",
      "placeholder": "​",
      "style": "IPY_MODEL_4124a8afe45246fd811064e63a55fd6d",
      "value": "llm_classify "
     }
    },
    "861dc30d89d846c6a6f5c1b5398b877c": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "ProgressStyleModel",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "ProgressStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "bar_color": null,
      "description_width": ""
     }
    },
    "8763982494d64e97bf50204d4b8beca3": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "HBoxModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HBoxModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HBoxView",
      "box_style": "",
      "children": [
       "IPY_MODEL_34e87b1773004b83ae4f227a2ec4e504",
       "IPY_MODEL_b5914f9bde894147a126f2552c68212c",
       "IPY_MODEL_a508ddd770e44356a773d94ab8fcf977"
      ],
      "layout": "IPY_MODEL_bb44d964d93642b9946253033c3d9e94"
     }
    },
    "89c44f8d9ad54370b75eacd7e83a4a70": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "ProgressStyleModel",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "ProgressStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "bar_color": null,
      "description_width": ""
     }
    },
    "8b4a5af6f76d431d8570e7400f8086fd": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "90253079c26747df99af818a9edabf36": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "a508ddd770e44356a773d94ab8fcf977": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "HTMLModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_568d5c22695a4108b3b0c27119cbf97e",
      "placeholder": "​",
      "style": "IPY_MODEL_f55ce1255e3f4dc6aab23b448a5c7574",
      "value": " 50/50 (100.0%) | ⏳ 00:33&lt;00:00 |  7.50it/s"
     }
    },
    "a78025bd35c84f3793772fd38872bbf3": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "a9933a0bab7f496fa2527f1abd4f2807": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "DescriptionStyleModel",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "b5440442ff814c69ab5409ec55b16a4e": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "b5914f9bde894147a126f2552c68212c": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "FloatProgressModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "FloatProgressModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "ProgressView",
      "bar_style": "",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_2eefae02445a4b1e9aad8fdc47a63572",
      "max": 50,
      "min": 0,
      "orientation": "horizontal",
      "style": "IPY_MODEL_ca3b583f7f5845f3b0cf197ac1b63976",
      "value": 50
     }
    },
    "bb44d964d93642b9946253033c3d9e94": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "bb5911202039461b98517aba47f7e656": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "HTMLModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_0d06c9bac593459e8b4349697b60fd45",
      "placeholder": "​",
      "style": "IPY_MODEL_5ccf1ab7cc164b6cb0c12b99dbd526e1",
      "value": "llm_classify "
     }
    },
    "bb8d73f1129146c9809dd05ec848fb49": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "be64e987f1a547bdb9196b30bae0c2a2": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "HTMLModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_ff7320e39af3418483200597313e3a9f",
      "placeholder": "​",
      "style": "IPY_MODEL_e5e348e67d674c77bf5b33643b2ae9ee",
      "value": "llm_classify "
     }
    },
    "ca3b583f7f5845f3b0cf197ac1b63976": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "ProgressStyleModel",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "ProgressStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "bar_color": null,
      "description_width": ""
     }
    },
    "d0bc41ba95514e56b13bb6da23c26bd3": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "FloatProgressModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "FloatProgressModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "ProgressView",
      "bar_style": "",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_efbd10c59abd49e0becbb8e17c6c046f",
      "max": 50,
      "min": 0,
      "orientation": "horizontal",
      "style": "IPY_MODEL_dc58c35b2e554e0aa0689e3eb8c36e75",
      "value": 50
     }
    },
    "dafe7d73cdb54b52a74596dd8d07ef2d": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "dc58c35b2e554e0aa0689e3eb8c36e75": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "ProgressStyleModel",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "ProgressStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "bar_color": null,
      "description_width": ""
     }
    },
    "e5e348e67d674c77bf5b33643b2ae9ee": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "DescriptionStyleModel",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "e8071c5ea332447c894cd34bee283ab2": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "DescriptionStyleModel",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "eaf0c8354fc24e4aa228525639793107": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "HBoxModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HBoxModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HBoxView",
      "box_style": "",
      "children": [
       "IPY_MODEL_8499388789c04cf19e29279e9bc9c468",
       "IPY_MODEL_6bfc17ec2fcd4cd4b2d250743590ca19",
       "IPY_MODEL_554fa6afa4144418b9e7ae200ad12b91"
      ],
      "layout": "IPY_MODEL_bb8d73f1129146c9809dd05ec848fb49"
     }
    },
    "efbd10c59abd49e0becbb8e17c6c046f": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "f55ce1255e3f4dc6aab23b448a5c7574": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "DescriptionStyleModel",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "ff7320e39af3418483200597313e3a9f": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    }
   }
  }
 },
 "nbformat": 4,
 "nbformat_minor": 0
}
